﻿using System;

namespace Detective.World
{
    public class Time 
    {
        #region Const

        private const decimal TimeFactor = 3;

        #endregion

        #region Fields

        private readonly DateTime _beginDate;
        private readonly DateTime _initiate;

        #endregion

        public Time(DateTime initiate)
        {
            _beginDate = DateTime.Now;
            _initiate = initiate;
        }

        #region Properties

        public byte Hour
        {
            get
            {
                return (byte)((DateTime.Now - _beginDate).Hours + _initiate.Hour);
            }
        }

        public byte Minute
        {
            get { return (byte)((DateTime.Now - _beginDate).Minutes + _initiate.Minute); }
        }

        #endregion

        #region Overriden methods

        public string GetTimeMessage()
        {
            if (Hour > 0 && Hour < 4)
            {
                return "Может пора поспать?";
            }
            else if (Hour < 6)
            {
                return "Сон для слабаков. Только бессонница. Только хардкор.";
            }
            else if (Hour < 10)
            {
                return "Утро красит нежным светом стены древнего Кремля...";
            }
            else if (Hour < 12)
            {
                return "Скоро обед. Выхода нет.";
            }
            else if (Hour < 14)
            {
                return "Пора поработать, посмотри почту, сделай что-нибудь.";
            }
            else if (Hour < 16)
            {
                return "Ну вот поели, можно и поспать.";
            }
            else if (Hour < 19)
            {
                return "Хрр-хрр";
            }
            else if (Hour < 21)
            {
                return "Настоящий детектив никогда не спит.";
            }

            return "Закипела работа...";
        }

        public override string ToString()
        {
            return Hour + ":" + Minute;
        }

        #endregion
    }
}
